Most operating systems in use today, operate using the window technique (windowing), which allows a user to work on different applications at the same time and to control them using the user interface.
It is customary practice today firstly to equip a workstation with a plurality of monitors, so that the user can distribute his applications over two or more monitors—and not over just one monitor, as previously customary. Secondly, there are fields of engineering, such as medical engineering, which require that a relatively large group of people be able to work with an application. These include, by way of example, scenarios for obtaining results for a patient using one or more imaging applications. In this case too, it makes sense for particular windows of the respective application to be distributed, positioned or displayed on a plurality of monitors.
In the operating systems in use today, e.g. Windows, Linux etc., provision is made for user interactions to be executed using a—possibly graphic—interface. That is to say that all the necessary interactions between the application and the user take place using specific windows which appear on the screen. Both the respective application and the underlying operating system send their messages (e.g. required user inputs, status information or warnings from the application or from the operating system etc.) using moving windows, known as popup windows or popups for short, which appear on the monitor when a specific event occurs.
Since a plurality of applications are usually executed in parallel, that is to say at the same time, a plurality of windows normally need to be displayed on a monitor. An application usually has a main application window. The application or the main window can respectively produce at least one child window which is derived from it. The child window is a menu or message window of any type in a respective application. These include popups with an input request or popups with warnings, for example.
To ensure a smooth operating sequence which is as optimum as possible for a plurality of applications and hence for a plurality of main windows on a monitor, a particular method for positioning the various windows on a monitor is known for systems from the prior art. This positioning mechanism is intended, in particular, to ensure that a popup window in an application is always visible to the user and hence is opened over the main window of the respective application. This makes it possible to ensure that the user actually sees the data displayed in the popup window (e.g. the warnings) immediately. In addition, this makes it possible to ensure that all popup windows are positioned visibly on the monitor without any further activity by the user.
In the Windows systems and derivatives thereof, this positioning mechanism is based on a “Z order”. In similar fashion to the mathematical Z axis in a coordinate system, the respective windows in the applications are arranged on an imaginary line which runs at right angles to the monitor.
The windows are arranged on a stack, so to speak, with the first element of the stack also appearing at the topmost position on the monitor and hence always being visible, while the last element of the stack is arranged right at the back in the Z order and it is hidden by the windows positioned in front of it. Each window which is to be displayed on the monitor has a unique position within this Z order. Depending on the arrangement in this Z order, a window may be fully visible or fully or partly hidden by others.
Other parameters which are crucial to the representation of the window on the monitor besides the positioning of a window are, by way of example, its size, its positioning relative to the other two axes (x and y axes of the coordinate system) and/or its type. Usually, a window is a rectangular screen sector. However, it is also possible for further elements of a user interface to be included, e.g. control elements such as buttons, scrollbars etc. In Windows-based systems, a “Window Manager” controls the arrangement of the windows.
Two separate sections are defined in the Z order: a topmost area and a normal area. For the topmost area, it is true that all windows which are situated in this area are guaranteed to be displayed in front of all other windows and are thus always visible. By contrast, the windows in the normal area may be hidden by other windows.
The control of the positioning for single-screen or single-monitor systems to date can be used to ensure that a child window generated by a main application or by a main window is situated at the topmost area and can therefore be guaranteed to be displayed fully on the monitor of the main window. The mechanism is based on a scheme which is usually used for windows systems in the prior art, namely on the Z order.
The concept of the Z order is derived from a predecessor/successor hierarchy and defines a “before/after” or an “above/below” arrangement. All the windows on a monitor are therefore depicted within this Z order hierarchy. This hierarchy starts at the desktop window as root window. As the direct successors or children of the desktop window, a plurality of main windows may be arranged on a “top-level window level”. A respective one of these main windows can then again be split into one or more child windows, in a manner of a tree. These child windows may be popup windows or other child windows. A child window can have only one main window as predecessor.
A problem in previous window control systems arises when the system is intended to be extended to a multimonitor system. A multimonitor computer system is usually used such that a first application is displayed on a first monitor and a second application is displayed on a second monitor. It is naturally also possible to extend the system to more than two monitors, so that further windows can be positioned on the further monitors.
In previously known systems, one problem is now that a child window in an application can be controlled only for the monitor on which the application or the associated main window is located. In previously known systems, it is therefore only possible to ensure that a child window is in the topmost area in relation to the main window of the respective application—and hence only in relation to a monitor. For multimonitor systems, this problem has not been solved to date.